﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Corvus
{
    public class Page : IPage
    {
        #region Constructors

        public Page(IAudit audit)
            : this()
        {
            Audit = audit;
        }

        public Page()
        {
            References = new List<IEntityReference>();
            WidgetZones = new Dictionary<string, IWidget>(StringComparer.OrdinalIgnoreCase);
        }

        #endregion

        #region Aggregate Root

        public string Id { get; set; }

        public ICollection<IEntityReference> References { get; private set; }

        public IAudit Audit { get; private set; }

        #endregion

        #region Localization

        public string Language { get; set; }

        public string NeutralId { get; set; }

        #endregion

        public string Slug { get; set; }

        public string Name { get; set; }

        public string Path { get; set; }

        public string PageTitle { get; set; }

        public IDictionary<string, IWidget> WidgetZones { get; private set; }

        public string QuoteText { get; set; }
    }
}
